import logging
from logging.handlers import RotatingFileHandler


def setup_logger():
    logger = logging.getLogger(__name__)
    logger.setLevel(logging.DEBUG)

    # 指定 encoding='utf-8' 确保中文正常写入
    file_handler = RotatingFileHandler(
        'register.log',
        maxBytes=10 * 1024 * 1024,
        backupCount=3,
        encoding='utf-8'  # 关键参数，确保中文不乱码
    )
    file_handler.setLevel(logging.INFO)

    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.DEBUG)

    formatter = logging.Formatter(
        '%(asctime)s - %(levelname)s - %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S'
    )
    file_handler.setFormatter(formatter)
    console_handler.setFormatter(formatter)

    if not logger.handlers:
        logger.addHandler(file_handler)
        logger.addHandler(console_handler)

    return logger


# 创建日志记录器实例
logger = setup_logger()

# 使用示例
if __name__ == '__main__':
    logger.debug('这是一条调试级别的日志')
    logger.info('这是一条信息级别的日志')
    logger.warning('这是一条警告级别的日志')
    logger.error('这是一条错误级别的日志')
    logger.critical('这是一条严重错误级别的日志')
